package com.zengqingfa.springboot.mybatis.demo.config;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @fileName: RedissonConfig
 * @author: zengqf3
 * @date: 2021-3-7 23:18
 * @description:
 */
@Configuration
public class RedissonConfig {

    /**
     * 单机版本
     *
     * @return
     */
    @Bean
    public RedissonClient getClient() {
        Config config = new Config();
        config.useSingleServer().setAddress("redis://127.0.0.1:6379");
        RedissonClient redisson = Redisson.create(config);
        return redisson;
    }

    /**
     * 集群版本
     * @return
     */
//    @Bean
//    public RedissonClient getClient2() {
//        Config config = new Config();
//        config.useClusterServers()
//                .setScanInterval(2000) // cluster state scan interval in milliseconds
//                .addNodeAddress("127.0.0.1:7000", "127.0.0.1:7001")
//                .addNodeAddress("127.0.0.1:7002");
//        RedissonClient redisson = Redisson.create(config);
//        return redisson;
//    }

    /**
     * 主从版本
     *
     * @return
     */
//    @Bean
//    public RedissonClient getClient3() {
//        Config config = new Config();
//        config.useMasterSlaveServers()
//                .setMasterAddress("127.0.0.1:6379")
//                .addSlaveAddress("127.0.0.1:6389", "127.0.0.1:6332", "127.0.0.1:6419")
//                .addSlaveAddress("127.0.0.1:6399");
//        RedissonClient redisson = Redisson.create(config);
//        return redisson;
//    }

    /**
     * 哨兵版本
     *
     * @return
     */
//    @Bean
//    public RedissonClient getClient4() {
//        Config config = new Config();
//        config.useSentinelServers()
//                .setMasterName("mymaster")
//                .addSentinelAddress("127.0.0.1:26389", "127.0.0.1:26379")
//                .addSentinelAddress("127.0.0.1:26319");
//        RedissonClient redisson = Redisson.create(config);
//        return redisson;
//    }

}
